section .data                                      ; 数据段
  userMsg db 'Please enter a number: '             ; 让用户输入数字
  lenUserMsg equ $-userMsg                         ; 消息长度
  dispMsg db 'You have entered: '             
  lenDispMsg equ $-dispMsg             
section .bss                                       ; 未初始化的数据
  num resb 5             
section .text                                      ; 代码段
  global _start             
_start:                                            ; 程序入口
  mov eax, 4                                       ; sys_write (4)
  mov ebx, 1                                       ; 文件描述符，stdout(1)
  mov ecx, userMsg                                 ; 字符串userMsg的首地址
  mov edx, lenUserMsg                              ; 消息长度lenUserMsg
  int 80h                                          ; 系统调用
  ;Read and store the user input             
  mov eax, 3                                       ; sys_read (3)
  mov ebx, 0                                       ; 文件描述符，stdin
  mov ecx, num                                     ; 长度为5个字节的字节数组num的首地址
  mov edx, 5                                       ; 该字符数组的长度
  int 80h                                          ; 系统调用
  ;Output the message 'The entered number is: '
  mov eax, 4                                       ; sys_write (4)
  mov ebx, 1                                       ; 文件描述符，stdout(1)
  mov ecx, dispMsg                                 ; 字符串dispMsg的首地址
  mov edx, lenDispMsg                              ; 消息长度lenDispMsg
  int 80h                                          ; 系统调用
  ;Output the number entered             
  mov eax, 4                                       ; sys_write (4)
  mov ebx, 1                                       ; 文件描述符，stdout(1)
  mov ecx, num                                     ; 字符数组num的首地址
  mov edx, 5                                       ; 该字符数组的长度
  int 80h                                          ; 系统调用
  ;Output the number entered             
  mov eax, 4                                       ; sys_write (4)
  mov ebx, 1                                       ; 文件描述符，stdout(1)
  mov ecx, 0xa                                     ; 字符数组num的首地址
  mov edx, 5                                       ; 该字符数组的长度
  int 80h                                          ; 系统调用  
  ; Exit code             
  mov eax, 1                                       ; sys_exit (1)
  mov ebx, 0                                       ; 函数返回值，也可以说是进程退出码
  int 80h